/**
 * MVC模式：用于解决应用程序中业务逻辑、数据和界面显示的耦合问题，使得开发和维护更加清晰和简单
 * 
 * 示例需求：
 * 创建一个作为模型的 Student 对象。
 * StudentView 是一个把学生详细信息输出到控制台的视图类。
 * StudentController 是负责存储数据到 Student 对象中的控制器类，并相应地更新视图 StudentView。
 * 演示类SimpleMain使用 StudentController 来演示 MVC 模式的用法。
 * 
 * 角色：
 * Model：Student
 * View：StudentView
 * controller：StudentController
 */
public class SimpleMain {
    public static void main(String[] args) {
        // 模拟从数据库获取model
        Student student = retrieveStudentFromDatabase();

        // 模拟视图
        StudentView view = new StudentView();

        // 控制器
        StudentController controller = new StudentController(student, view);

        controller.updateView();
        System.out.println("--------------------------------");
        controller.setStudentName("name");
        controller.setStudentRollNo("123");
        controller.updateView();
    }

    public static Student retrieveStudentFromDatabase() {
        Student student = new Student();
        student.setName("Robert");
        student.setRollNo("10");
        return student;
    }
}
